package qlvbdq.bo;

import java.util.ArrayList;
import javax.swing.JOptionPane;
import qlvbdq.dao.PhieuNoDAO;
import qlvbdq.dto.KhachHangDTO;
import qlvbdq.dto.PhieuNoDTO;

/**
 *
 * @author THAI HA
 */
public class PhieuNoBO {

    public PhieuNoBO() {
    }

    public boolean themPhieuNo(PhieuNoDTO pndto_) {
        boolean result = false;
        KhachHangDTO khdto
                = new KhachHangBO().getKhachHang(pndto_.getMaKhachHang());
        //kiem tra co phai la khach quen hay khong theo quy dinh 2
        if (!khdto.getLaKhachQuen()) {
            JOptionPane.showMessageDialog(null,
                    "Khách hàng không phải là khách hàng quen!",
                    "Thêm phiếu nợ",
                    JOptionPane.ERROR_MESSAGE);
            result = false;
        } else if (khdto.getSoTienNo() < pndto_.getSoTienNo()) {
            JOptionPane.showMessageDialog(null,
                    "Số tiền nợ vượt quá giới hạn!",
                    "Thêm phiếu nợ",
                    JOptionPane.ERROR_MESSAGE);
            return false;
        } else if (new PhieuNoDAO().InsertPhieuNO(pndto_) > 0) {
            result = true;
        }
        return result;
    }

    public boolean deletePhieuNo(PhieuNoDTO pndto_) {
        return new PhieuNoDAO().DeletePhieuNO(pndto_) > 0;
    }

    public boolean updatePhieuNo(PhieuNoDTO pndto_) {
        KhachHangDTO khdto
                = new KhachHangBO().getKhachHang(pndto_.getMaKhachHang());
        if (!khdto.getLaKhachQuen()) {
            JOptionPane.showMessageDialog(null,
                    "Khách hàng không hợp lệ!",
                    "Cập nhật phiếu nợ",
                    JOptionPane.ERROR_MESSAGE);
            return false;

        } else if (khdto.getSoTienNo() < pndto_.getSoTienNo()) {
            JOptionPane.showMessageDialog(null,
                    "Số tiền vượt quá giới hạn!",
                    "Cập nhật phiếu nợ",
                    JOptionPane.ERROR_MESSAGE);
            return false;
        } else {
            return new PhieuNoBO().updatePhieuNo(pndto_);
        }
    }

    public ArrayList<PhieuNoDTO> getAllPhieuNo() {
        return new PhieuNoBO().getAllPhieuNo();
    }

    public ArrayList<PhieuNoDTO> getPhieuNoByRule(PhieuNoDTO pndto_) {
        return new PhieuNoDAO().GetPhieuNoByRule(pndto_);
    }
}
